
/**
 * @Project : Clion_ProgrammingExercises
 * @File : 0840
 * @Author : WangRuoyu 
 * @Date : 2023/9/20 20:27
 */

// 拉链法
//#include "iostream"
//#include <cstring>
//
//using namespace std;
//
//const int N = 1e5 + 3;
//int h[N], e[N], ne[N];
//int idx = 0;
//
//void insert(int x) {
//    int k = ((x % N) + N) % N;
//    e[idx] = x;
//    ne[idx] = h[k];
//    h[k] = idx++;
//}
//
//bool query(int x) {
//    int k = ((x % N) + N) % N;
//    for (int i = h[k]; i != -1; i = ne[i]) {
//        if (e[i] == x) {
//            return true;
//        }
//    }
//    return false;
//}
//
//int main() {
//    int n;
//    memset(h, -1, sizeof h);
//    scanf("%d", &n);
//    for (int i = 0; i < n; ++i) {
//        string op;
//        int x;
//        cin >> op >> x;
//        if (op == "I") {
//            insert(x);
//        } else {
//            if (query(x)) {
//                puts("Yes");
//            } else {
//                puts("No");
//            }
//        }
//    }
//    return 0;
//}

// 开放寻址法
#include "iostream"
#include <cstring>

using namespace std;

const int N = 2e5 + 3;
const int null = 0x3f3f3f3f;
int h[N];

void insert(int x) {
    int k = ((x % N) + N) % N;
    while (null != h[k]) {
        k = (k + 1) % N;
    }
    h[k] = x;
}

bool query(int x) {
    int k = ((x % N) + N) % N;
    for (int i = k; h[i] != null; i = (i + 1) % N) {
        if (h[i] == x) {
            return true;
        }
    }
    return false;
}

int main() {
    int n;
    memset(h, 0x3f, sizeof h);
    scanf("%d", &n);
    for (int i = 0; i < n; ++i) {
        string op;
        int x;
        cin >> op >> x;
        if (op == "I") {
            insert(x);
        } else {
            if (query(x)) {
                puts("Yes");
            } else {
                puts("No");
            }
        }
    }
    return 0;
}